package com.quanyan.vote.task;

import com.github.ltsopensource.core.commons.utils.DateUtils;
import com.github.ltsopensource.core.domain.Job;
import com.github.ltsopensource.jobclient.JobClient;
import com.github.ltsopensource.jobclient.domain.Response;
import com.quanyan.vote.service.impl.TbVoteExpertServiceImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

import java.util.Date;

/**
 * @author xian-guo
 */

public class TimerTaskJob {

    private static final Logger LOGGER = LoggerFactory.getLogger(TimerTaskJob.class);

    @Autowired
    private JobClient jobClient;

    public void executeTask() {


        //
        //job.setPriority(50);//设置优先级,(数值越大,优先级越低)默认是100
        //job.setRelyOnPrevCycle(true);//是否依赖上一个执行周期，默认是true
        //job.setMaxRetryTimes(15);//设置最大尝试次数，默认是10次
        //job.setTriggerTime(DateUtils.addHour(new Date(), 8).getTime()); //设置指定时间执行，8小时后触发
        //job.setCronExpression("0 0 23 * * ?");//设置指定时间触发，每天晚上23点执行

        //每天晚上投机每日票数增量
        Job job = new Job();
        job.setTaskId("task_vote_get_day_vote");//每个任务必须指定唯一
        job.setParam("type", "typeA");//执行多个任务，传递参数
        job.setTaskTrackerNodeGroup("taskTracker_vote");//每个模块指定不同的名称，但同一个模块不同任务必须相同
        job.setNeedFeedback(true);
        job.setReplaceOnExist(true);        // 当任务队列中存在这个任务的时候，是否替换更新
        job.setCronExpression("0 55 23 * * ?");//设置指定时间触发，每天晚上点执行
        Response response = jobClient.submitJob(job);
        LOGGER.info("------任务是否提交成功----->>>>>>>>>>>>>>>>"+response);

//
//
//
//        Job job2 = new Job();
//        job2.setTaskId("task_vote_two");//每个任务必须指定唯一
//        job2.setParam("type","typeA");//执行多个任务，传递参数
//        job2.setTaskTrackerNodeGroup("taskTracker_vote");//每个模块指定不同的名称，但同一个模块不同任务必须相同
//        job2.setNeedFeedback(true);
//        job2.setReplaceOnExist(true);        // 当任务队列中存在这个任务的时候，是否替换更新
//        job2.setRepeatCount(-1);
//        job2.setRepeatInterval(5 * 1000L);
//        Response responseTwo = jobClient.submitJob(job2);
//        LOGGER.info("------任务2是否提交成功----->>>>>>>>>>>>>>>>"+responseTwo);


//        System.out.println("定时任务执行了---------->>>>>>>>>>>>>>>>>"+responseTwo);
    }

}
